/*!
 @header InfoPickerViewController.h
 @author 周益
 @version 1.0.0 2013/02/22 Creation
 Copyright (c) 2013年 mypocketbaby. All rights reserved.
 */

#import <UIKit/UIKit.h>
#import "WordsLeftView.h"

/*!
 @enum
 @abstract 用于鉴别用户到此页面是修改姓名亦或是修改个性签名
 @constant UserInfoNameType 0
 @constant UserInfoSignatrueType 1
 */
typedef enum{
    
    UserInfoNameType = 0,
    UserInfoSignatrueType
    
}UserInfoType;

/*!
 @abstract InfoPickerViewController的协议，定义了用户修改姓名或个性签名后对文字的后续处理。
 @discussion @optional
 */
@protocol InfoPickerViewControllerDelegate <NSObject>

@optional
/*!
 @abstract 获得个性签名的内容，让代理对象进行后续处理。
 @discussion @optional
 @param signature 用户修改后的个性签名的内容。
 */
- (void)receivingSignature:(NSString *)signature;

/*!
 @abstract 获得姓名的内容，让代理对象进行后续处理
 @discussion @optional
 @param name 用户修改后的姓名的内容
 */
- (void)receivingName:(NSString *)name;

@end

/*!
 @abstract InfoPickerViewController用于完成对用户的姓名或者个性签名的修改操作
 如果类适应了InfoPickerViewControllerDelegate，那么代理类在用户修改了姓名或者个性签名后可对修改后的内容作后续处理。
 */
@interface InfoPickerViewController : UIViewController<UITextFieldDelegate, UITextViewDelegate>
{
    UITextField *_nameTextField;                    //姓名框
    UITextView *_signatureTextView;                 //个性签名框
    NSString *_content;                             //用户预设置的内容
    UserInfoType _userInfoType;                     //用于鉴别用户到此页面是修改姓名亦或是修改个性签名
    UILabel*    _countLabel;                        //字数统计view
    
}

/*!
 @abstract InfoPickerViewController带参数的初始化方法
 @param content 用户预设置的内容
 @param type 此页面需要完成的功能
 @result InfoPickerViewController的实例
 */
- (id)initWithContent:(NSString *)content AndType:(UserInfoType)type;

/*!
 @abstract InfoPickerViewController的代理对象
 此代理必须适应InfoPickerViewControllerDelegate
 */
@property (nonatomic, weak) id<InfoPickerViewControllerDelegate> delegate;

@end